package com.duoec.dw.lineage.service.analyser.commend;

import com.duoec.dw.lineage.dto.SqoopCommendArgument;
import org.springframework.stereotype.Service;

/**
 * @author xuwenzhen
 */
@Service
public class WhereCommendLineAnalyser extends BaseCommendLineAnalyser {

    public static final String STR_TIME_00_00_00 = "time'00:00:00'";

    /**
     * 用于检查的起始字段串，如果命中后就会执行
     *
     * @return 起始字段串
     */
    @Override
    public String getStart() {
        return "where ";
    }

    /**
     * 分析
     *
     * @param importDto 血缘关系数据
     * @param line      需要处理的行
     */
    @Override
    public void analyse(SqoopCommendArgument importDto, String line) {
        String whereStr = getString("where", line);
        int index = whereStr.indexOf(STR_TIME_00_00_00);
        if (index != -1) {
            // 有这样的写法：duration_time>=time'00:00:00' 会导致sql解析失败，这里做下处理
            importDto.setWhere(whereStr.substring(0, index) + "'00:00:00'" + whereStr.substring(index + STR_TIME_00_00_00.length()));
            return;
        }
        importDto.setWhere(whereStr);
    }
}
